/* 
 * File:   tf.h
 * Author: Tomás R. González Barroso  
 * Diseño de sistemas Operativos
 * Created on 26 de junio de 2013, 8:46
 */

#include "comun.h"
#include <sys/stat.h>

// File table item
typedef struct file {    
    int permisos;               // access mode: O_RDONLY, O_WRONLY, O_RDWR
    ino_t inode;                // inode number
    off_t io;                   // file position pointer
    off_t tam;                 // total file size in bytes
} file;

// File table
typedef struct filetable {
    int n; 
    file files[MAXFILES];  
} filetable;

//Inicializamos buffer y alojamos en memoria compartida
int ft_init_memory(int getmemory);

//Visualizamos el tabla de ficheros
void tf_print (void);

//Liberamos memoria compartida
void tf_free_mem (int id_memoria,int getmemory);

//Añadimos un nuevo fichero a la tabla en exclusión mutua.
int tf_open(char *filepath,int mode);

//Liberamos fichero 
void tf_close(int fd);

//Buscamos el fd asociado al inode
int tf_getfd(ino_t inode);


